package com.itheima.controller;

import cn.hutool.core.date.DateTime;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.itheima.common.R;
import com.itheima.utils.ConstUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;

/**
 * @author huangzelnag
 * @create 2022-05-10
 */
@RestController
@RequestMapping("common")
public class CommonController {


    @PostMapping("/upload")
    public R uploadImg(@RequestParam("file")  MultipartFile file) throws IOException {




        // yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1（杭州）为例，Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
        String endpoint = ConstUtils.END_POINT;

        // 阿里云账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维，请登录RAM控制台创建RAM用户。
        String keyid =  ConstUtils.KEY_ID;
        String keysecret =  ConstUtils.KEY_SECRET;
        String bucketname = ConstUtils.BUCKET_NAME;
        String urlName  = ConstUtils.URL_NAME;



        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, keyid, keysecret);
        InputStream inputStream = file.getInputStream();
        //获取文件名称
        String fileName = file.getOriginalFilename();
        String uuid  = UUID.randomUUID().toString().replaceAll("-","");
        fileName = uuid+fileName;
        String datepath= new DateTime().toString("yyyy/MM/dd");
        fileName=datepath+"/"+fileName;
        //调用oss方法
        ossClient.putObject(bucketname, fileName,inputStream);
        // 关闭OSSClient。
        ossClient.shutdown();
        String  url=urlName+"/"+fileName;




        return R.success(url);


    }






}
